- 
        Couldn't load subscription status. 
- Fork 344
feat(core, postgres): Add RunFunctionWaitStrategy and use it in pg #908
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat(core, postgres): Add RunFunctionWaitStrategy and use it in pg #908
Conversation
b4ea0ee    to
    d2b2200      
    Compare
  
    | result = self.func(container) | ||
| if result: | ||
| return result | ||
| except tuple(self._transient_exceptions) as e: | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I actually found no reason why this shouldn't be a tuple already on self -> might be an nice refactoring on WaitStrategy and where it's used.
| ] | ||
| ) | ||
| if result.exit_code: | ||
| raise ConnectionError("pg_isready is not ready yet") | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume that the pg_isready is some missing change in an older commit. I haven't investigated more...
| return returns.pop(0) | ||
|  | ||
| strategy = RunFunctionWaitStrategy(func).with_poll_interval(0) | ||
| strategy.wait_until_ready(mock_container) # type: ignore[arg-type] | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For some reason mypy didn't like passing in the mock and I had to add the ignore despite other places in the same file not having this problem with mock. No idea why :-(
| Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@            Coverage Diff             @@
##             main     #908      +/-   ##
==========================================
+ Coverage   79.78%   80.00%   +0.21%     
==========================================
  Files          14       14              
  Lines        1182     1200      +18     
  Branches      184      186       +2     
==========================================
+ Hits          943      960      +17     
- Misses        197      199       +2     
+ Partials       42       41       -1     ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
 | 
This is usefull for converting old wait_container_is_ready which use container.exec() to check for a condition to become True.
ca685b7    to
    8c1e4f9      
    Compare
  
    This gets rid of a annoying depcreation warning.
8c1e4f9    to
    531934a      
    Compare
  
    
I found no way to convert the current
container.exec()based check function to any of the currently existingWaitStartegiesand so I addedRunFunctionWaitStrategywhich can be used to convert suchcontainer.exec()based checks.Helps with: #874
Closes: #883